package com.itheima.dao;

import com.itheima.domain.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface UserDao {
    /**
     * 查询所有用户信息
     * @return
     */
    public List<User> findAll();

    /**
     * 查询一条数据
     * @param id
     */
    public User findById(Integer id);

    /**
     * 查询一条数据
     */
    public List<User> findByUsernameAndAddress(@Param("username") String username,@Param("address") String address);

    /**
     * 添加用户
     * @param user
     */
    public void add(User user);

    /**
     * 更新--根据用户id进行更新所有字段
     * 注意:如果字段没有值,将会被更新为null
     * @param user
     */
    public void update(User user);

    /**
     * 根据id删除用户
     * @param id
     */
    public void delete(Integer id);



    /**
     * 根据用户名,模糊查询用户信息
     * @param name
     * @return
     */
    public List<User>  findLikeName(String name);

    /**
     * 查询所有用户数量
     * @return
     */
    public int findTotalCount();

    /**
     * 动态sql，应用于搜索
     * @param name
     * @return
     */
    public List<User>  findByUser(String name);

}
